Este análisis tiene como objetivo calcular probabilidades condicionales en el dataset de “Career Success”, respondiendo preguntas como:
¿Cuál es la probabilidad de tener éxito en la carrera si el individuo tiene un alto nivel de educación?
¿Cómo influye la experiencia laboral en el éxito profesional?
Estos cálculos son clave para evaluar factores que contribuyen al éxito profesional y mejorar la toma de decisiones en la planificación de carreras.
# 📌 Cargar librerías necesarias
library(here) # Manejo de rutas dinámicas
library(janitor) # Limpieza de nombres de columnas
library(summarytools) # Resumen estadístico detallado
library(ggplot2) # Gráficos
library(dplyr) # Manipulación de datos
library(plotly) # Gráficos Interactivos
# 📌 Configuración de gráficos globales
theme_set(theme_minimal())
source(here("reportes/Proy_Education_Career_Success/00_CONFIGURACION.r"))
# 📌 Cargar scripts de preprocesamiento
source(here("scripts/utils.r"))
source(here("scripts/1_preprocesamiento_esp_dataset.r"))
source(here("scripts/3_analisis_probabilidad.r"))
# 📌 Cargar dataset limpio
dataset_career_success <- preprocesar_datos(here("datasets/education_data_limpio.csv"), "Education Career Success")
## 📥 Cargando datos del proyecto: Education Career Success
## 🧹 Realizando limpieza de datos...
## ✅ Preprocesamiento completado para: Education Career Success
3️⃣ Cálculo de Probabilidades Condicionales
Analizamos la relación entre factores de éxito y el éxito profesional.
📌 Probabilidad de Éxito Profesional dado un Alto Nivel de Educación
# Calcular probabilidades
resultados_university_vs_satisfaction <- calcular_probabilidades(
data = dataset_career_success,
condicionante = "university_ranking",
objetivo = "career_satisfaction",
bins = 5 # Dividir en 5 intervalos
)
# Mostrar resultados
cat("Tabla de contingencia:\n")
## Tabla de contingencia:
print(resultados_university_vs_satisfaction$tabla_contingencia)
## # A tibble: 25 × 3
## university_ranking career_satisfaction n
## <fct> <fct> <int>
## 1 [0.001,201] [0.991,2.8] 200
## 2 [0.001,201] (2.8,4.6] 190
## 3 [0.001,201] (4.6,6.4] 197
## 4 [0.001,201] (6.4,8.2] 200
## 5 [0.001,201] (8.2,10] 193
## 6 (201,401] [0.991,2.8] 176
## 7 (201,401] (2.8,4.6] 196
## 8 (201,401] (4.6,6.4] 207
## 9 (201,401] (6.4,8.2] 214
## 10 (201,401] (8.2,10] 231
## # ℹ 15 more rows
cat("\nProbabilidades condicionales:\n")
##
## Probabilidades condicionales:
print(resultados_university_vs_satisfaction$probabilidades_condicionales)
## # A tibble: 25 × 4
## university_ranking career_satisfaction n prob_condicional
## <fct> <fct> <int> <dbl>
## 1 [0.001,201] [0.991,2.8] 200 0.204
## 2 [0.001,201] (2.8,4.6] 190 0.194
## 3 [0.001,201] (4.6,6.4] 197 0.201
## 4 [0.001,201] (6.4,8.2] 200 0.204
## 5 [0.001,201] (8.2,10] 193 0.197
## 6 (201,401] [0.991,2.8] 176 0.172
## 7 (201,401] (2.8,4.6] 196 0.191
## 8 (201,401] (4.6,6.4] 207 0.202
## 9 (201,401] (6.4,8.2] 214 0.209
## 10 (201,401] (8.2,10] 231 0.226
## # ℹ 15 more rows
cat("\nProbabilidades marginales de career_success:\n")
##
## Probabilidades marginales de career_success:
print(resultados_university_vs_satisfaction$probabilidades_marginales)
## # A tibble: 5 × 3
## career_satisfaction n prob_marginal
## <fct> <int> <dbl>
## 1 [0.991,2.8] 966 0.193
## 2 (2.8,4.6] 989 0.198
## 3 (4.6,6.4] 980 0.196
## 4 (6.4,8.2] 1030 0.206
## 5 (8.2,10] 1035 0.207
resultados_gender_vs_salary <- calcular_probabilidades(
data = dataset_career_success,
condicionante = "gender",
objetivo = "starting_salary",
bins = 5 # Dividir en 5 intervalos
)
# Mostrar resultados
cat("Tabla de contingencia:\n")
## Tabla de contingencia:
print(resultados_gender_vs_salary$tabla_contingencia)
## # A tibble: 15 × 3
## gender starting_salary n
## <fct> <fct> <int>
## 1 Female [2.49e+04,4.02e+04] 603
## 2 Female (4.02e+04,5.54e+04] 886
## 3 Female (5.54e+04,7.06e+04] 649
## 4 Female (7.06e+04,8.58e+04] 194
## 5 Female (8.58e+04,1.01e+05] 18
## 6 Male [2.49e+04,4.02e+04] 609
## 7 Male (4.02e+04,5.54e+04] 938
## 8 Male (5.54e+04,7.06e+04] 679
## 9 Male (7.06e+04,8.58e+04] 205
## 10 Male (8.58e+04,1.01e+05] 27
## 11 Other [2.49e+04,4.02e+04] 52
## 12 Other (4.02e+04,5.54e+04] 74
## 13 Other (5.54e+04,7.06e+04] 49
## 14 Other (7.06e+04,8.58e+04] 16
## 15 Other (8.58e+04,1.01e+05] 1
cat("\nProbabilidades condicionales:\n")
##
## Probabilidades condicionales:
print(resultados_gender_vs_salary$probabilidades_condicionales)
## # A tibble: 15 × 4
## gender starting_salary n prob_condicional
## <fct> <fct> <int> <dbl>
## 1 Female [2.49e+04,4.02e+04] 603 0.257
## 2 Female (4.02e+04,5.54e+04] 886 0.377
## 3 Female (5.54e+04,7.06e+04] 649 0.276
## 4 Female (7.06e+04,8.58e+04] 194 0.0826
## 5 Female (8.58e+04,1.01e+05] 18 0.00766
## 6 Male [2.49e+04,4.02e+04] 609 0.248
## 7 Male (4.02e+04,5.54e+04] 938 0.382
## 8 Male (5.54e+04,7.06e+04] 679 0.276
## 9 Male (7.06e+04,8.58e+04] 205 0.0834
## 10 Male (8.58e+04,1.01e+05] 27 0.0110
## 11 Other [2.49e+04,4.02e+04] 52 0.271
## 12 Other (4.02e+04,5.54e+04] 74 0.385
## 13 Other (5.54e+04,7.06e+04] 49 0.255
## 14 Other (7.06e+04,8.58e+04] 16 0.0833
## 15 Other (8.58e+04,1.01e+05] 1 0.00521
cat("\nProbabilidades marginales de career_success:\n")
##
## Probabilidades marginales de career_success:
print(resultados_gender_vs_salary$probabilidades_marginales)
## # A tibble: 5 × 3
## starting_salary n prob_marginal
## <fct> <int> <dbl>
## 1 [2.49e+04,4.02e+04] 1264 0.253
## 2 (4.02e+04,5.54e+04] 1898 0.380
## 3 (5.54e+04,7.06e+04] 1377 0.275
## 4 (7.06e+04,8.58e+04] 415 0.083
## 5 (8.58e+04,1.01e+05] 46 0.0092
4️⃣ Visualización de Resultados
📌 Gráfico de Probabilidad de Satisfacción Laboral según el Ranking de la Universidad
p_university_vs_satisfaction <- visualizar_probabilidad_condicional(
data = dataset_career_success,
condicionante = "university_ranking",
objetivo = "career_satisfaction",
titulo = "Probabilidad Satisfacción Laboral según Ranking de la Universidad",
xlab = "Ranking de la Universidad (Intervalos)",
guardar = TRUE,
ruta_guardado = here("reportes/Proy_Education_Career_Success/resultados_generados/probabilidad_condicional_university_vs_satisfaction.png"),
bins = 5 # Dividir en 5 intervalos
)
# Mostrar gráfico interactivo
p_university_vs_satisfaction
p_gender_vs_salary <- visualizar_probabilidad_condicional(
data = dataset_career_success,
condicionante = "gender",
objetivo = "starting_salary",
titulo = "Probabilidad Salario inicial según Género",
xlab = "Género",
guardar = TRUE,
ruta_guardado = here("reportes/Proy_Education_Career_Success/resultados_generados/probabilidad_condicional_gender_vs_salary.png"),
bins = 5 # Dividir en 5 intervalos
)
# Mostrar gráfico interactivo
p_gender_vs_salary